// [[ OnflowGenerator File UUID: 654aa164e7794c1ea5445cb02a8d9584  ]]
package com.itdct.onflow.system.menu.qo

import com.itdct.onflow.core.qo.BaseQo
import com.itdct.onflow.core.type.Add
import com.itdct.onflow.core.type.Update
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Length

/**
 * @author DCTANT
 * @date 2025-09-01 14:35:02
 * @version 1.0
 * @description 系统菜单编辑入参
 */
@Schema(name = "系统菜单编辑入参", description = "系统菜单编辑入参")
class SysMenuEditQo : BaseQo() {
    // [[ OnflowGenerator Range (- fields -) Start ]]
    @Schema(title = "显示菜单名称", example = "")
    @NotBlank(message = "请输入显示菜单名称", groups = [Add::class, Update::class])
    @Length(max = 100, message = "显示菜单名称不能超过100个字符", groups = [Add::class, Update::class])
    var title: String? = null

    @Schema(title = "前端模块名称", example = "")
    @NotBlank(message = "请输入前端模块名称", groups = [Add::class, Update::class])
    @Length(max = 100, message = "前端模块名称不能超过100个字符", groups = [Add::class, Update::class])
    var name: String? = null

    @Schema(title = "前端组件名称", example = "")
    @Length(max = 200, message = "前端组件名称不能超过200个字符", groups = [Add::class, Update::class])
    var component: String? = null

    @Schema(title = "父级菜单ID", example = "")
    var parentId: Long? = null

    @Schema(title = "父级菜单ID路径", example = "")
    @Length(max = 2000, message = "父级菜单ID路径不能超过2000个字符", groups = [Add::class, Update::class])
    var idPath: String? = null

    @Schema(title = "排序（越小排越前）", example = "")
    @NotNull(message = "请输入排序（越小排越前）", groups = [Add::class, Update::class])
    var orderNum: Int? = null

    @Schema(title = "图标", example = "")
    @Length(max = 500, message = "图标不能超过500个字符", groups = [Add::class, Update::class])
    var icon: String? = null

    @Schema(title = "是否隐藏菜单", example = "")
    @NotNull(message = "请输入是否隐藏菜单", groups = [Add::class, Update::class])
    var hiddenMenu: Boolean? = null

    @Schema(title = "是否隐藏顶部标签", example = "")
    @NotNull(message = "请输入是否隐藏顶部标签", groups = [Add::class, Update::class])
    var hiddenTag: Boolean? = null

    @Schema(title = "是否启用", example = "")
    @NotNull(message = "请输入是否启用", groups = [Add::class, Update::class])
    var enable: Boolean? = null

    @Schema(title = "是否可跳转", example = "")
    @NotNull(message = "请输入是否可跳转", groups = [Add::class, Update::class])
    var canTo: Boolean? = null

    @Schema(title = "是否可以无权限跳转", example = "")
    @NotNull(message = "请输入是否可以无权限跳转", groups = [Add::class, Update::class])
    var noPermission: Boolean? = null

    @Schema(title = "平台类型", example = "")
    @NotBlank(message = "请输入平台类型", groups = [Add::class, Update::class])
    @Length(max = 100, message = "平台类型不能超过100个字符", groups = [Add::class, Update::class])
    var platformType: String? = null

    @Schema(title = "备注", example = "")
    @Length(max = 500, message = "备注不能超过500个字符", groups = [Add::class, Update::class])
    var remark: String? = null

// [[ OnflowGenerator Range (- fields -) End ]]
}